#define _CRT_SECURE_NO_WARNINGS 
//#include<iostream>
//using namespace std;
//using ll = long long;
//const ll N = 1e4 + 10;
//ll matrix[N][N];
//ll n, D;
//ll dx[] = { 0,0,-D,D };
//ll dy[] = { D,-D,0,0 };
//ll dp[N][N];
//ll visited[N][N];
//ll dfs(ll x,ll y)
//{
//	if(x == n + 1)
//	{
//		return 1;
//	}
//	if (dp[x][y] != -1)
//	{
//		return dp[x][y];
//	}
//	for (ll i = 0; i < 4; i++)
//	{
//		ll next_x = x + dx[i];
//		ll next_y = y + dy[i];
//		for (ll i = 1; i <= n; i++)
//		{
//			if (next_x == matrix[i][1] && next_y == matrix[i][2])
//			{
//				visited[next_x][next_y] = 1;
//				dp[next_x][next_y] = 1;
//			}
//		}
//	}
//	visited[x][y] = 1;
//}
//int main()
//{
//	memset(dp, -1, sizeof(dp));
//	cin >> n;
//	for (ll i = 1; i <= n; i++)
//	{
//		cin >> matrix[i][1] >> matrix[i][2];
//	}
//	cin >> D;
//	for (ll i = 1; i <= n; i++)
//	{
//		visited[matrix[i][1]][matrix[i][2]] = 0;
//	}
//	for (ll i = 1; i <= n; i++)
//	{
//		dfs(matrix[i][1], matrix[i][2]);
//	}
//	for (ll i = 1; i <= n; i++)
//	{
//		cout << visited[matrix[i][1]][matrix[i][2]] << endl;
//	}
//	return 0;
//}
#include<iostream>
#include<cmath>
using ll = long long;
using namespace std;
const ll N = 1e4 + 10;
ll d, n, x[N], y[N], vis[N];
double dis(ll i, ll j)
{
	return sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
}
void dfs(ll id)
{
	vis[id] = 1;
	for (ll i = 1; i <= n; i++)
	{
		if (dis(i,id) <= d && !vis[i])
		{
			dfs(i);
		}
	}
}
int main()
{
	cin >> n;
	for (ll i = 1; i <= n; i++)
	{
		cin >> x[i] >> y[i];
	}
	cin >> d;
	dfs(1);
	for (ll i = 1; i <= n; i++)
	{
		cout << (vis[i] ? "1" : "0") << endl;
	}
	return 0;
}